﻿using Echart.Model.TextStyle;
using Echart.Model.TextStyle.Rich;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Echart.Model.Label
{
    public class label
    {      
        /// <summary>
        /// 是否显示 
        /// </summary>
        public bool? show { get; set; }       

        /// <summary>
        /// 标签的位置
        /// </summary>
        public string position { get; set; }

        /// <summary>
        /// 距离图形元素的距离。当 position 为字符描述值（如 'top'、'insideRight'）时候有效。
        /// </summary>
        public double? distance { get; set; }

        /// <summary>
        /// 标签旋转。从 -90 度到 90 度。正值是逆时针。
        /// </summary>
        public double? rotate { get; set; }

        /// <summary>
        /// 是否对文字进行偏移。默认不偏移。例如：[30, 40] 表示文字在横向上偏移 30，纵向上偏移 40。
        /// </summary>
        public Array[] offset { get; set; }

        /// <summary>
        /// 标签内容格式器，支持字符串模板和回调函数两种形式，字符串模板与回调函数返回的字符串均支持用 \n 换行。
        /// 字符串模板 模板变量有：
        /// {a}：系列名。
        /// {b}：数据名。
        /// {c}：数据值。
        /// {@xxx}：数据中名为'xxx'的维度的值，如{@product}表示名为'product'` 的维度的值。
        /// {@[n]}：数据中维度n的值，如{@[3]}` 表示维度 3 的值，从 0 开始计数。
        /// </summary>
        public string formatter { get; set; }

        /// <summary>
        /// 文字的颜色。
        /// </summary>
        public string color { get; set; }

        /// <summary>
        /// 文字字体的风格。可选：
        /// 'normal'
        /// 'italic'
        /// 'oblique'
        /// </summary>
        public string fontStyle { get; set; }

        /// <summary>
        /// 文字字体的粗细。可选：
        /// 'normal'
        /// 'bold'
        /// 'bolder'
        /// 'lighter'
        /// 100 | 200 | 300 | 400...
        /// </summary>
        public string fontWeight { get; set; }

        /// <summary>
        /// 文字的字体系列。
        /// </summary>
        public string fontFamily { get; set; }

        /// <summary>
        /// 文字的字体大小。
        /// </summary>
        public string fontSize { get; set; }

        /// <summary>
        /// 文字水平对齐方式，默认自动。
        /// 可选：
        /// 'left'
        /// 'center'
        /// 'right'
        /// </summary>
        public string align { get; set; }

        /// <summary>
        /// 文字垂直对齐方式，默认自动。
        /// 可选：
        /// 'top'
        /// 'middle'
        /// 'bottom'
        /// </summary>
        public string verticalAlign { get; set; }

        /// <summary>
        /// 行高。
        /// </summary>
        public double? lineHeight { get; set; }

        /// <summary>
        /// 文字块背景色。
        /// </summary>
        public string backgroundColor { get; set; }

        /// <summary>
        /// 文字块边框颜色。
        /// </summary>
        public string borderColor { get; set; }

        /// <summary>
        /// 文字块边框宽度。
        /// </summary>
        public double? borderWidth { get; set; }

        /// <summary>
        /// 文字块的圆角。
        /// </summary>
        public Array[] borderRadius { get; set; }

        /// <summary>
        /// 文字块的内边距
        /// </summary>
        public Array[] padding { get; set; }

        /// <summary>
        /// 文字块的背景阴影颜色。
        /// </summary>
        public string shadowColor { get; set; }

        /// <summary>
        /// 文字块的背景阴影长度。
        /// </summary>
        public double? shadowBlur { get; set; }

        /// <summary>
        /// 文字块的背景阴影 X 偏移。
        /// </summary>
        public double? shadowOffsetX { get; set; }

        /// <summary>
        /// 文字块的背景阴影 Y 偏移。
        /// </summary>
        public double? shadowOffsetY { get; set; }

        /// <summary>
        /// 文字块的宽度
        /// </summary>
        public double? width { get; set; }

        /// <summary>
        /// 文字块的高度。
        /// </summary>
        public double? height { get; set; }

        /// <summary>
        /// 文字本身的描边颜色。
        /// </summary>
        public string textBorderColor { get; set; }

        /// <summary>
        /// 文字本身的描边宽度。
        /// </summary>
        public double? textBorderWidth { get; set; }

        /// <summary>
        /// 文字本身的阴影颜色。
        /// </summary>
        public string textShadowColor { get; set; }

        /// <summary>
        /// 文字本身的阴影长度。
        /// </summary>
        public double? textShadowBlur { get; set; }

        /// <summary>
        /// 文字本身的阴影 X 偏移。
        /// </summary>
        public double? textShadowOffsetX { get; set; }

        /// <summary>
        /// 文字本身的阴影 Y 偏移。
        /// </summary>
        public double? textShadowOffsetY { get; set; }

        /// <summary>
        /// 自定义富文本样式
        /// </summary>
        public rich rich { get; set; }
    }
}
